﻿using System;
using System.Net;
using Hydra.Shell.Attributes;
using System.Collections.Generic;
using Hydra.Shell.Implementations;

namespace Hydra.Shell.Interfaces.EnvDTE
{
    [GuidAttribute("E6B96CAC-B8C7-40AE-B705-5C81878C4A9E")]
    public interface Commands : IEnumerable<Command>
    {
        
        EnvDTE.DTE DTE { get; }
        EnvDTE.DTE Parent { get; }
        void Add(string Guid, int ID, ref object Control);
        void Raise(string Guid, int ID, ref object CustomIn, ref object CustomOut);
        void CommandInfo(object CommandBarControl, out string Guid, out int ID);
        int Count { get; }
        Command Item(object index, int ID = -1);
        //Command AddNamedCommand(AddIn AddInInstance, string Name, string ButtonText, string Tooltip, bool MSOButton, int Bitmap = 0, ref object[] ContextUIGUIDs, int vsCommandDisabledFlagsValue = 0x10);
        //object AddCommandBar(string Name, vsCommandBarType Type, object CommandBarParent, int Position = 1);
        void RemoveCommandBar(object CommandBar);
    }
}
